
package view;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

import utils.Keyin;

public class ClientView {
    
    public static final String OPTION_CREATE_FILE = "1";
    public static final String OPTION_READ_FILE = "2";
    public static final String OPTION_DELETE_FILE = "3";
    public static final String OPTION_MOVE_FILE = "4";
    public static final String OPTION_EDIT_FILE = "5";
    public static final String OPTION_EXIT = "6";
    
    public ClientView() {
        
    }
    
    public String[] getUserChoice() {
        
        int option;
        String extra1 = "";
        String extra2 = "";
        boolean invalid;
        
        do {
            invalid = false;
            System.out.println("==================================");
            System.out.println("|     SISTEMA DE ARQUIVO P2P     |");
            System.out.println("==================================");
            System.out.println("| Opções:                        |");
            System.out.println("|        1. Criar arquivo        |");
            System.out.println("|        2. Ler arquivo          |");
            System.out.println("|        3. Excluir arquivo      |");
            System.out.println("|        4. Baixar arquivo       |");
            System.out.println("|        5. Editar arquivo       |");
            System.out.println("|        6. Sair                 |");
            System.out.println("==================================");
            option = Keyin.inInt("Digite o número da opção escolhida:");
            
            switch (option) {
                case 1:
                    // System.out.println("Digite o nome do arquivo: ");
                    extra1 = Keyin.inString("Digite o nome do arquivo:");
                    break;
                case 2:
                    extra1 = Keyin.inString("Digite o nome do arquivo:");
                    break;
                case 3:
                    extra1 = Keyin.inString("Digite o nome do arquivo:");
                    break;
                case 4:
                    extra1 = Keyin.inString("Digite o nome do arquivo:");
                    break;
                case 5:
                    extra1 = Keyin.inString("Digite o nome do arquivo:");
                    break;
                case 6:
                    System.out.println("Opção 5 selecionada");
                    break;
                default:
                    System.out.println("Opção inválida");
                    invalid = true;
                    break;
            }
        } while (invalid);
        
        return new String[] {
                String.valueOf(option), extra1, extra2
        };
    }
    
    public void showMessage(String message) {
        System.out.println(message);
    }
    
    public void printFile(String fileName) {
        BufferedReader in;
        try {
            in = new BufferedReader(new FileReader(fileName));
            String line = in.readLine();
            int count = 1;
            while (line != null)
            {
                System.out.println(count + " | " + line);
                line = in.readLine();
                count++;
            }
            if (count == 1) {
                System.out.println("Arquivo vazio!");
            }
            in.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
